/*
 * svalue.c
 *
 *  Created on: 2013-5-21
 *      Author: xkaying
 */

#include "svalue.h"

#include <assert.h>
#include <stdlib.h>

typedef struct _svalueitem{
		char *variable;//变量名
		STemplateParam *templeteparam;//模板参数_
}SValueItem;

struct _svalue{
		List *items;
};

SValue *SValueInit()
{
	SValue *pvalue;
	pvalue=(SValue*)malloc(sizeof(SValue));
	pvalue=0;
	return pvalue;
}

void SValueAppend(SValue *pvalue,char *name)
{
	assert(pvalue);
	assert(name);
	if(pvalue->items==0){
		pvalue->items=ListInit();
	}
	SValueItem *pitem;
	pitem=(SValueItem*)malloc(sizeof(SValueItem));
	pitem->variable=name;
	pitem->templeteparam=0;
	ListPush(pvalue->items,pitem);

}

void SValueAppendTempateParam(SValue *pvalue,STemplateParam *param)
{
	assert(pvalue);
	assert(param);
	assert(pvalue->items);
	SValueItem *pitem;
	pitem=(SValueItem*)ListEnd(pvalue->items);
	pitem->templeteparam=param;
}
